#ifndef LEVELACTOR_H
#define LEVELACTOR_H

// LevelActor is concrete Actor in a Level

#include "appGlobals.h"
#include "abstractlevelobject.h"
class AbstractGameObject;

namespace LevelObjects {

class Level;

class LevelActor : public AbstractLevelObject
{
	Q_OBJECT

public:
	LevelActor(QObject *parent, QPointer<AbstractGameObject> actor, const QString& name);

	LevelObjectType type() const;
	QPointer<Level> level() const;
	QRect actorVisualData(QImage& image);

	bool isSelected() const;
private:
	QPointer<AbstractGameObject> m_actor;
	QString m_name;

	// initial parameters when actor is in level
	QPointF m_pos;
	float m_fAngle;
	QPointF m_scale;
	int m_nZDepth;
};

} // namespace LevelObjects

#endif // LEVELACTOR_H
